﻿using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Transliterator.Tests
{
    [TestClass]
    public class TransliteratorTest
    {
        private readonly Transliterator _target = new Transliterator();

        [TestMethod]
        public void UradiTransliteracijuDvoznacnihGlasovaKadaSuSviKarakteriVeliki()
        {
            const string input = "NJLJDŽDJ";
            const string expected = "ЊЉЏЂ";

            Assert.AreEqual(expected, _target.TransliterujUCirilicu(input));
        }

        [TestMethod]
        public void UradiTransliteracijuDvoznacnihGlasovaKadaSuSamoPrviKarakteriVeliki()
        {
            const string input = "NjLjDžDj";
            const string expected = "ЊЉЏЂ";

            Assert.AreEqual(expected, _target.TransliterujUCirilicu(input));
        }

        [TestMethod]
        public void PrvoTransliterujDvoznacnihSlova()
        {
            const string input = "NJLJDŽDJ n d ž j";
            const string expected = "ЊЉЏЂ н д ж ј";

            Assert.AreEqual(expected, _target.TransliterujUCirilicu(input));
        }

        [TestMethod]
        public void PrvoTransliterujDvoznacnihMalihSlova()
        {
            const string input = "njljdždj n d ž j";
            const string expected = "њљџђ н д ж ј";

            Assert.AreEqual(expected, _target.TransliterujUCirilicu(input));
        }


        [TestMethod]
        public void TransliterujSvaJednoznacnaVelikaSlova()
        {
            const string input = "ABVGDĐEŽZIJKLLJMNNJOPRSTĆUFHCČDžŠ";
            const string expected = "АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ";

            Assert.AreEqual(expected, _target.TransliterujUCirilicu(input));
        }

        [TestMethod]
        public void TransliterujSvaJednoznacnaMalaSlova()
        {
            const string input = "abvgdđežzijklljmnnjoprstćufhcčdžš";
            const string expected = "абвгдђежзијклљмнњопрстћуфхцчџш";

            Assert.AreEqual(expected, _target.TransliterujUCirilicu(input));
        }


        [TestMethod]
        public void TransliterujSvaJednoznacnaVelikaSlovaULatinicu()
        {
            const string input = "АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ";
            const string expected = "ABVGDĐEŽZIJKLLjMNNjOPRSTĆUFHCČDžŠ";

            Assert.AreEqual(expected, _target.TransliterujULatinicu(input));
        }

        [TestMethod]
        public void TransliterujSvaJednoznacnaMalaSlovaULatinicu()
        {
            const string input = "абвгдђежзијклљмнњопрстћуфхцчџш";
            const string expected = "abvgdđežzijklljmnnjoprstćufhcčdžš";

            Assert.AreEqual(expected, _target.TransliterujULatinicu(input));
        }
    }
}